import Mock from 'better-mock/dist/mock.mp.js'


// 生成模拟数据的工具函数
const generateUser = (id) => ({
  id: id || Mock.Random.guid(),
  username: Mock.Random.cname() + Mock.Random.guid().substr(0, 4),
  email: Mock.Random.email(),
  age: Mock.Random.integer(18, 60),
  createdAt: Mock.Random.date('yyyy-MM-dd')
})

// API 配置对象
const userApi = {
  // 匹配 /api/user 路径
  '/api/user': {
    // GET 请求处理
    get: {
      code: 200,
      message: 'success',
      // 生成动态数据列表（5-10条随机用户）
      'data|5-10': [{
        ...generateUser(),
        // 嵌套生成地址信息
        address: {
          province: Mock.Random.province(),
          city: Mock.Random.city(),
          street: Mock.Random.county()
        }
      }]
    },
    // POST 请求处理
    post: (options) => {
      // 解析请求体中的 JSON 数据
      const { username, email } = JSON.parse(options.body)
      
      // 生成新用户数据（模拟数据库插入）
      const newUser = {
        id: Mock.Random.guid(),
        username,
        email,
        age: Mock.Random.integer(18, 60),
        createdAt: new Date().toISOString()
      }
      
      // 返回模拟响应
      return {
        code: 201,
        message: 'User created successfully',
        data: newUser
      }
    }
  },

  // 动态路径参数匹配（GET /api/user/:id）
  '/api/user/:id': {
    get: (options) => {
      const { id } = options.url.match(/\/api\/user\/(.*)/)[1]
      
      // 模拟从数据库查询用户
      const user = generateUser(id)
      
      // 如果 ID 无效返回错误
      if (!user.id) {
        return {
          code: 404,
          message: 'User not found'
        }
      }
      
      return {
        code: 200,
        data: user
      }
    }
  },
  '/api/login':{
	  post: (options) => {
		  const { username } = options.body;
		  return { code: 200, data:{token: Mock.Random.string(32)},message:"登陆成功" };
	  }
  }
  
}

export default userApi
